package com.scau402.system.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.scau402.common.annotation.Excel;
import com.scau402.common.core.domain.BaseEntity;

import java.util.ArrayList;
import java.util.List;

/**
 * 仓库仓位对象 wms_warehouse_storage
 * 
 * @author ruoyi
 * @date 2023-06-26
 */
public class WmsWarehouseStorage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 是否不限容量 **/
    private String isInfinite;

    /** 父仓位 **/
    private Long parentStorage;

    /** 父仓位名称 **/
    private String parentStorageName;

    /** 子仓位 **/
    private List<WmsWarehouseStorage> children = new ArrayList<WmsWarehouseStorage>();

    /** 仓位主键ID */
    private Long id;

    /** 仓位编码 */
    @Excel(name = "仓位编码")
    private String storageCode;

    /** 仓位名称 */
    @Excel(name = "仓位名称")
    private String storageName;

    /** 所属仓库主键ID */
    @Excel(name = "所属仓库主键ID")
    private Long parentWarehouse;

    /** 所属仓库名称 */
    @Excel(name = "所属仓库名称")
    private String parentWarehouseName;

    /** 最大容量（单位/件） */
    @Excel(name = "最大容量", readConverterExp = "单=位/件")
    private Long maxCap;

    /** 已使用容量（单位/件） */
    @Excel(name = "已使用容量", readConverterExp = "单=位/件")
    private Long usedCap;

    /** 状态（0启用 1停用） */
    @Excel(name = "状态", readConverterExp = "0=启用,1=停用")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 部门ID */
    @Excel(name = "部门ID")
    private Long deptId;

    /** 租户ID */
    @Excel(name = "租户ID")
    private Long tenantId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setStorageCode(String storageCode)
    {
        this.storageCode = storageCode;
    }

    public String getStorageCode()
    {
        return storageCode;
    }
    public void setStorageName(String storageName) 
    {
        this.storageName = storageName;
    }

    public String getStorageName() 
    {
        return storageName;
    }
    public void setParentWarehouse(Long parentWarehouse) 
    {
        this.parentWarehouse = parentWarehouse;
    }

    public Long getParentWarehouse() 
    {
        return parentWarehouse;
    }

    public void setMaxCap(Long maxCap)
    {
        this.maxCap = maxCap;
    }

    public Long getMaxCap()
    {
        return maxCap;
    }

    public void setUsedCap(Long usedCap)
    {
        this.usedCap = usedCap;
    }

    public Long getUsedCap()
    {
        return usedCap;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }

    public void setTenantId(Long tenantId) 
    {
        this.tenantId = tenantId;
    }

    public Long getTenantId() 
    {
        return tenantId;
    }

    public List<WmsWarehouseStorage> getChildren() {
        return children;
    }

    public void setChildren(List<WmsWarehouseStorage> children) {
        this.children = children;
    }

    public Long getParentStorage() {
        return parentStorage;
    }

    public void setParentStorage(Long parentStorage) {
        this.parentStorage = parentStorage;
    }

    public String getParentWarehouseName() {
        return parentWarehouseName;
    }

    public void setParentWarehouseName(String parentWarehouseName) {
        this.parentWarehouseName = parentWarehouseName;
    }

    public String getParentStorageName() {
        return parentStorageName;
    }

    public void setParentStorageName(String parentStorageName) {
        this.parentStorageName = parentStorageName;
    }

    public String getIsInfinite() {
        return isInfinite;
    }

    public void setIsInfinite(String isInfinite) {
        this.isInfinite = isInfinite;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("storageCode", getStorageCode())
            .append("storageName", getStorageName())
            .append("parentWarehouse", getParentWarehouse())
            .append("maxCap", getMaxCap())
            .append("usedCap", getUsedCap())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("remark", getRemark())
            .append("deptId", getDeptId())
            .append("tenantId", getTenantId())
            .toString();
    }
}
